package com.rbmq.demo.test.simplelist;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import org.junit.Test;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @version 1.0
 * @Author: 许啸林
 * @Date: 2021/6/15 15:57
 */
public class Provider {
    @Test
    public void sendMsg() throws IOException, TimeoutException {
        // 创建连接工厂类
        ConnectionFactory connectionFactory = new ConnectionFactory();
        // 设置连接mqIp
        connectionFactory.setHost("47.97.229.240");
        // 设置tcp端口 java默认 5672
        connectionFactory.setPort(5672);
        // 设置rabbitmq 虚拟主机
        connectionFactory.setVirtualHost("/ems");
        // 设置用户名密码
        connectionFactory.setUsername("admin2");
        connectionFactory.setPassword("123");
        // 创建连接
        Connection connection = connectionFactory.newConnection();
        // 创建连接管道
        Channel channel = connection.createChannel();
        // 通道绑定消息队列
        // param 1 队列名称 不存在则自动创建
        // param 2 durable 持久化队列 true 持久化
        // param 3 exclusive 独占队列 true 独占
        // param 4 autoDelete 是否在消费完成后自动删除 true 自动删除
        // param 5 附加参数
        channel.queueDeclare("lcj", true, false, false, null);
        // 发布消息
        // p1 交换机名称
        // p2 队列名
        // p3 附加参数
        // p4 消息主体
        channel.basicPublish("", "lcj",null, "hellolcj".getBytes());
        // 关闭通道
        channel.close();
        connection.close();
    }
}